ValidatedChoice

constructor(defaultValue: T, choices: List<T>, handler: EntryHandler<T>, widgetType: ValidatedChoice.WidgetType)

A validated set of choices of any type

Similar to a ValidatedEnum, but constructed from a pre-defined list of choices

Author

fzzyhmstrs

Since

0.3.6

Parameters

T

the choice type

defaultValue

the default choice

choices

List defining the appropriate choices

handler

EntryHandler to provide validation tasks for individual choice elements

widgetType

WidgetType defines the GUI selection type. Defaults to POPUP

See also

Samples

import me.fzzyhmstrs.fzzy_config.util.AllowableIdentifiers
import me.fzzyhmstrs.fzzy_config.util.EnumTranslatable
import me.fzzyhmstrs.fzzy_config.util.FcText.lit
import me.fzzyhmstrs.fzzy_config.util.ValidationResult
import me.fzzyhmstrs.fzzy_config.validation.collection.ValidatedList
import me.fzzyhmstrs.fzzy_config.validation.minecraft.ValidatedIdentifier
import me.fzzyhmstrs.fzzy_config.validation.minecraft.ValidatedRegistryType
import me.fzzyhmstrs.fzzy_config.validation.minecraft.ValidatedTagKey
import me.fzzyhmstrs.fzzy_config.validation.misc.*
import me.fzzyhmstrs.fzzy_config.validation.misc.ValidatedColor.Companion.validatedColor
import me.fzzyhmstrs.fzzy_config.validation.number.ValidatedInt
import net.minecraft.item.Items
import net.minecraft.item.SwordItem
import net.minecraft.registry.Registries
import net.minecraft.registry.tag.ItemTags
import net.minecraft.util.Identifier
import java.awt.Color
import java.util.function.Function

fun main() { 
   //sampleStart 
   //fully defined validated choice, defining a set of valid ints (which happen to be the enchantment weights from the old Enchantment.Rarity enum.
val validatedChoice = ValidatedChoice(1, listOf(1, 2, 5, 10), ValidatedInt(1, 10, 1), ValidatedChoice.WidgetType.CYCLING)

//validated choice that uses "default" as its default choice automatically, and is defaulting to using the popup widget
val validatedChoiceDefault = ValidatedChoice(listOf("default", "rare", "abundant"), ValidatedString())

//validated choices built from a validated list instance.
val validatedChoiceList = ValidatedList.ofString("default", "rare", "abundant").toChoices()

//fields and sections have lang keys based on their "location" in the Config class graph.
//Lange key composition is as follows
//1. the namespace of the config id: (my_mod)
//2. the path of the config id: (my_mod.my_config)
//3. any parent ConfigSection field names as declared in-code: (my_mod.my_config.subSection)
//4. the setting field name as declared in-code: (my_mod.my_config.subSection.fieldName)
val fieldLang = """
{
    "_comment1": "the lang for an example 'fieldName' setting in a config inside section 'subSection'",
    "my_mod.my_config.subSection.fieldName": "Very Important Setting",
    "my_mod.my_config.subSection.fieldName.desc": "This very important setting is used in this very important way."
}
""" 
   //sampleEnd
}

constructor(choices: List<T>, handler: EntryHandler<T>, translationProvider: BiFunction<T, String, MutableText> = BiFunction { t, _ -> t.transLit(t.toString()) }, descriptionProvider: BiFunction<T, String, Text> = BiFunction { t, _ -> t.descLit(t.toString()) }, widgetType: ValidatedChoice.WidgetType = WidgetType.POPUP)

A validated set of choices of any type using the first choice as the default

Similar to a ValidatedEnum, but constructed from a pre-defined list of choices

Author

fzzyhmstrs

Since

0.2.0, added providers 0.3.6

Parameters

T

the choice type

choices

List defining the appropriate choices; the first choice in the list will be the default

handler

EntryHandler to provide validation tasks for individual choice elements

translationProvider

BiFunction T, String, Text - converts a choice instance T and the base translation key of this ValidatedChoice into a text Translation

descriptionProvider

BiFunction T, String, Text - converts a choice instance T and the base description key of this ValidatedChoice into a text Description

widgetType

WidgetType defines the GUI selection type. Defaults to POPUP


constructor(choices: List<T>, handler: EntryHandler<T>, widgetType: ValidatedChoice.WidgetType)

A validated set of choices of any type using the first choice as the default

Similar to a ValidatedEnum, but constructed from a pre-defined list of choices

Author

fzzyhmstrs

Since

0.3.6

Parameters

T

the choice type

choices

List defining the appropriate choices; the first choice in the list will be the default

handler

EntryHandler to provide validation tasks for individual choice elements

widgetType

WidgetType defines the GUI selection type. Defaults to POPUP


constructor(handler: EntryHandler<T>, vararg choice: T)

A validated set of choices of any type using the first choice as the default

Similar to a ValidatedEnum, but constructed from a pre-defined list of choices

Author

fzzyhmstrs

Since

0.3.6

Parameters

T

the choice type

handler

EntryHandler to provide validation tasks for individual choice elements

choice

vararg T defining the appropriate choices; the first provided choice will be the default


constructor(defaultValue: T, choices: List<T>, handler: EntryHandler<T>, translationProvider: BiFunction<T, String, MutableText> = BiFunction { t, _ -> t.transLit(t.toString()) }, descriptionProvider: BiFunction<T, String, Text> = BiFunction { t, _ -> t.descLit("") }, widgetType: ValidatedChoice.WidgetType = WidgetType.POPUP)

Parameters

T

the choice type

defaultValue

the default choice

choices

List defining the appropriate choices

handler

EntryHandler to provide validation tasks for individual choice elements

translationProvider

BiFunction T, String, Text - converts a choice instance T and the base translation key of this ValidatedChoice into a text Translation

descriptionProvider

BiFunction T, String, Text - converts a choice instance T and the base description key of this ValidatedChoice into a text Description

widgetType

WidgetType defines the GUI selection type. Defaults to POPUP